package com.naiterui.ehp.bs.emr.vo;

import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonInclude.Include;
import com.naiterui.ehp.bs.emr.vo.amc.AmcResultVO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.lang3.builder.ToStringBuilder;

import java.io.Serializable;
import java.util.List;

@ApiModel(value = "CaseInitVO", description = "填写病历初始化VO")
public class CaseInitVO implements Serializable {
    public static final int REQUIRED_YES = 1;
    public static final int REQUIRED_NO = 0;
    private static final long serialVersionUID = 1L;
    @ApiModelProperty(value = "医生姓名")
    @JsonInclude(Include.NON_NULL)
    private String doctorName;

    @ApiModelProperty(value = "科室")
    @JsonInclude(Include.NON_NULL)
    private String department;

    @ApiModelProperty(value = "医院")
    @JsonInclude(Include.NON_NULL)
    private String hospital;

    @ApiModelProperty(value = "就诊人id")
    @JsonInclude(Include.NON_NULL)
    private Long inquirerId;

    @ApiModelProperty(value = "患者与就诊人关系")
    @JsonInclude(Include.NON_NULL)
    private Integer relation;

    @ApiModelProperty(value = "患者姓名")
    @JsonInclude(Include.NON_NULL)
    private String name;

    @ApiModelProperty(value = "性别1:男,0:女,2:未知")
    @JsonInclude(Include.NON_NULL)
    private Integer gender;// 1:男,0:女

    @ApiModelProperty(value = "年龄")
    @JsonInclude(Include.NON_NULL)
    private Integer age;// 年龄

    @ApiModelProperty(value = "年龄单位:岁,个月,周")
    @JsonInclude(Include.NON_NULL)
    private String ageUnit;// 年龄单位

    @ApiModelProperty(value = "患者显示年龄")
    private String ageStr;

    @ApiModelProperty(value = "病情描述")
    @JsonInclude(Include.NON_NULL)
    private String description;

    @ApiModelProperty(value = "amc诊断结果 ")
    @JsonInclude(Include.NON_NULL)
    private AmcResultVO amcResult;

    @ApiModelProperty(value = "哺乳期,孕期,不知道 ")
    @JsonInclude(Include.NON_NULL)
    private String pregnancy;

    @ApiModelProperty(value = "身高")
    @JsonInclude(Include.NON_NULL)
    private Integer height;

    @ApiModelProperty(value = "体重")
    @JsonInclude(Include.NON_NULL)
    private Integer weight;

    @ApiModelProperty(value = "过敏药物")
    @JsonInclude(Include.NON_NULL)
    private String medicAllergys;

    @ApiModelProperty(value = "过往病史")
    @JsonInclude(Include.NON_NULL)
    private String pastDiseases;

    @ApiModelProperty(value = "家族病史")
    @JsonInclude(Include.NON_NULL)
    private String familyDiseases;

    @ApiModelProperty(value = "遗传病")
    @JsonInclude(Include.NON_NULL)
    private String hereditaryDiseases;

    @ApiModelProperty(value = "吸烟情况")
    @JsonInclude(Include.NON_NULL)
    private String smoke;

    @ApiModelProperty(value = "饮酒情况")
    @JsonInclude(Include.NON_NULL)
    private String drink;

    @ApiModelProperty(value = "必填标识,1:必填,0:非必填(2.19之后弃用)  ")
    @JsonInclude(Include.NON_NULL)
    private Integer requiredFlag;// 必填标识,1:必填,0:非必填

    @ApiModelProperty(value = "病历类型,3:患者病历,8:线上诊室病历")
    @JsonInclude(Include.NON_NULL)
    private Integer caseType;// 病历类型

    @ApiModelProperty(value = "线上诊室病历(当病历类型为8时取这个对象中的值)")
    @JsonInclude(Include.NON_NULL)
    private DrCaseVO drCaseVO;

    @ApiModelProperty(value = "治疗意见预置选项")
    private List<String> treatmentPresetOptions;

    public List<String> getTreatmentPresetOptions() {
        return treatmentPresetOptions;
    }

    public void setTreatmentPresetOptions(List<String> treatmentPresetOptions) {
        this.treatmentPresetOptions = treatmentPresetOptions;
    }

    public String getDoctorName() {
        return doctorName;
    }

    public void setDoctorName(String doctorName) {
        this.doctorName = doctorName;
    }

    public String getDepartment() {
        return department;
    }

    public void setDepartment(String department) {
        this.department = department;
    }

    public String getHospital() {
        return hospital;
    }

    public void setHospital(String hospital) {
        this.hospital = hospital;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getGender() {
        return gender;
    }

    public void setGender(Integer gender) {
        this.gender = gender;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public String getAgeUnit() {
        return ageUnit;
    }

    public void setAgeUnit(String ageUnit) {
        this.ageUnit = ageUnit;
    }

    public Integer getRequiredFlag() {
        return requiredFlag;
    }

    public void setRequiredFlag(Integer requiredFlag) {
        this.requiredFlag = requiredFlag;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public AmcResultVO getAmcResult() {
        return amcResult;
    }

    public void setAmcResult(AmcResultVO amcResult) {
        this.amcResult = amcResult;
    }

    public String getPregnancy() {
        return pregnancy;
    }

    public void setPregnancy(String pregnancy) {
        this.pregnancy = pregnancy;
    }

    public Integer getHeight() {
        return height;
    }

    public void setHeight(Integer height) {
        this.height = height;
    }

    public Integer getWeight() {
        return weight;
    }

    public void setWeight(Integer weight) {
        this.weight = weight;
    }

    public String getMedicAllergys() {
        return medicAllergys;
    }

    public void setMedicAllergys(String medicAllergys) {
        this.medicAllergys = medicAllergys;
    }

    public String getPastDiseases() {
        return pastDiseases;
    }

    public void setPastDiseases(String pastDiseases) {
        this.pastDiseases = pastDiseases;
    }

    public String getFamilyDiseases() {
        return familyDiseases;
    }

    public void setFamilyDiseases(String familyDiseases) {
        this.familyDiseases = familyDiseases;
    }

    public String getHereditaryDiseases() {
        return hereditaryDiseases;
    }

    public void setHereditaryDiseases(String hereditaryDiseases) {
        this.hereditaryDiseases = hereditaryDiseases;
    }

    public String getSmoke() {
        return smoke;
    }

    public String getAgeStr() {
        return ageStr;
    }

    public void setAgeStr(String ageStr) {
        this.ageStr = ageStr;
    }

    public void setSmoke(String smoke) {
        this.smoke = smoke;
    }

    public String getDrink() {
        return drink;
    }

    public void setDrink(String drink) {
        this.drink = drink;
    }

    public Integer getCaseType() {
        return caseType;
    }

    public void setCaseType(Integer caseType) {
        this.caseType = caseType;
    }

    public DrCaseVO getDrCaseVO() {
        return drCaseVO;
    }

    public void setDrCaseVO(DrCaseVO drCaseVO) {
        this.drCaseVO = drCaseVO;
    }

    @Override
    public String toString() {
        return ToStringBuilder.reflectionToString(this);
    }

}
